約 6,766,707 件
https://w.atwiki.jp/naobe/pages/78.html
ネットワークに戻る RFC2616概要 HTTP/1.1 RFC6265概要 HTTP状態管理機構 パーセントエンコーディング(URLエンコード) URLで意味を持つコードと混同する日本語などのバイナリや特殊記号を16進形式にして、先頭に%を付加した文字に変換する。正確に言うと、非予約文字、予約文字以外を変換する。 項目 説明 非予約文字 ASCIIのコード範囲内の英字(大文字・小文字)、数字、ハイフン “-”、ピリオド “.”、アンダースコア “_”、チルダ “~” 予約文字 URIを表す符号。ASCIIのコード範囲内のコロン “ ”、スラッシュ “/”、疑問符 “?”、シャープ “#”、角括弧 “[”、“]”、単価記号 “@”、感嘆符 “!”、ドル記号・ペソ記号 “$”、アンパサンド “ ”、アポストロフィー・シングルクオート “ ”、丸括弧 “(”、“)”、アスタリスク “*”、正符号・加算記号 “+”、コンマ “,”、セミコロン “;”、等号 “=” name=%E8%8F%85%E7%9B%B4%E4%BA%BA UTF-8で、%E8%8F%85:菅, %E7%9B%B4 直, %E4%BA%BA 人 x-www-form-urlencoded(URLエンコード) POSTのフォームデータをエンコードする。%を付加する方式は、パーセントエンコーディングと同じ。パーセントエンコーディングの予約文字も変換している スペースは"+"に変換。Javaのソースを見ると、英数字、"-","_", ".","*"以外を変換する BASE64 Wikipediaより データを64種類の印字可能な英数字のみを用いて、それ以外の文字を扱うことの出来ない通信環境にてマルチバイト文字やバイナリデータを扱うためのエンコード方式 7ビットのデータしか扱うことの出来ない電子メールにて広く利用されている A–Z, a–z, 0–9 までの62文字と、記号2つ (+ , /) 、さらにパディング(余った部分を詰める)のための記号として = が用いられる 76文字ごとに改行コードが入る Cookie Wikipediaより クッキーを設定する際、どの要求に対してクッキー情報を送り返すのか、URLの範囲を指定する。 規定値は、クッキーを設定したサーバに対するすべての要求であり、対象を広げることも狭めることもできる。ただし広げる場合でも、トップレベルドメインより狭い範囲でなければならない。 またクッキーの有効期限は、通常はブラウザを終了するまでだが、指定した期限まではブラウザを再度起動しても保持されるように設定することができる。有効期限の情報も、サーバからブラウザにクッキー情報を送信する段階で付加される。 無期限という設定は出来ない。 詳細: http //www.studyinghttp.net/cookies リクエスト 全てテキスト。行(CRLF)で区切られる。 フォーマット リクエストラインは1行。ヘッダは複数行。 大項目 小項目 説明 リクエストライン メソッド GET,POST,PUTなどのどれか。 リクエストURL リクエストを処理するURI プロトコルバージョン HTTPのバージョン。【例】HTTP/1.1 ヘッダ HOST リクエスト先のホスト名。必須項目 空行 POSTのときにヘッダの終了を示すために挿入される メッセージボディ POSTのときにリクエストデータを出力する 【例】 GET http //example.jp/31/31-001.php HTTP/1.1 リクエストライン Host example.jp --+ User-Agent Mozilla/5.0 (Windows NT 5.1; rv 2.0.1) Gecko/20100101 Firefox/4.0.1 | Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 +-- ヘッダ Accept-Language ja,en-us;q=0.7,en;q=0.3 | Accept-Encoding gzip, deflate | Accept-Charset Shift_JIS,utf-8;q=0.7,*;q=0.7 | Keep-Alive 115 | Connection keep-alive | Referer http //example.jp/31/ --+ Accept-CharsetでShift-JISの品質係数が1であるため、サーバは、Shift-JISでエンコードしたメッセージを返す。 POST http //example.jp/31/31-003.php HTTP/1.1 リクエストライン Accept image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/vnd.ms-excel ヘッダ Referer http //example.jp/31/31-002.php Accept-Language ja User-Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Inf oPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Content-Type application/x-www-form-urlencoded Accept-Encoding gzip, deflate Host example.jp Content-Length 65 Connection Keep-Alive Pragma no-cache name=%E8%8F%85%E7%9B%B4%E4%BA%BA mail=kan@aaa.jp gender=%E7%94%B7 メッセージボディ Hostヘッダ HTTP1.1では必須。POST/GETでのURIにHOSTを指定していなかった場合、Virtualホストを特定できない。そのためHostヘッダにHOST名を指定する。URIにホスト名があって、Hostヘッダにもホスト名がある場合はURIを優先する。URIにホスト名を指定することを強制すれば良いような気がするが。 Referer ヘッダの一種。リンク元のURLを示す。あるWebページのリンクをクリックして別のページに移動したときの、リンク元のページのこと。 改変、削除される場合があるので正しくリンクを示しているとは限らない。 セキュリティ上、問題となるのは、URLが秘密情報を含んでいる場合。たとえば、URLがセッションIDを含んでいる場合。なりすましに使われる可能性がある。 【例】 GET http //example.jp/31/31-002.php HTTP/1.1 Accept image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, appl ication/msword, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms -xpsdocument, application/xaml+xml, */* Referer http //example.jp/31/ Accept-Language ja User-Agent Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 1.1.4322; .NET CLR 2.0.50727; Inf oPath.1; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729) Accept-Encoding gzip, deflate Host example.jp Connection Keep-Alive http //example.jp/31/のHTMLのaタグからリクエストが発生したため、Refererヘッダがつく。 レスポンス 全てテキスト。行で区切られる。 フォーマット ステータスラインは1行。ヘッダ、ボディは複数行。 大項目 小項目 説明 ステータスライン プロトコルバージョン ステータスコード 1XX 処理継続、2XX 正常終了、3XX リダイレクト、4XX クライアントエラー、5XX サーバエラー テキストフレーズ レスポンスヘッダ Content-Length ボディのバイト数 Content-Type MIMEタイプ; charset=エンコーディング 空行 ヘッダの終わりを示す ボディ 【例】 HTTP/1.1 200 OK Date Wed, 04 May 2011 04 51 51 GMT Server Apache/2.2.14 (Ubuntu) X-Powered-By PHP/5.3.2-1ubuntu4.2 Vary Accept-Encoding Content-Length 20 Keep-Alive timeout=15, max=100 Connection Keep-Alive Content-Type text/html; charset=UTF-8 body 13 51 /body Content-type メディアタイプを示すエンティティヘッダ(メッセージボディに対する付随情報)。type "/" subtype *( ";" parameter )であらわされる。text/html; charset=utf-8など。charsetを追加すると出力の文字コードを示す。HTML文書にapplication/octet-streamを付けると、 多くの場合、Webブラウザはそれをダウンロードするか否か問い合わせるようになる。 Apacheの場合は、httpd.confの以下の設定でcharsetを指定する。 AddDefaultCharset UTF-8 Tomcatでは、JSPのpageディレクティブで設定する。 %@ page language="java" contentType="text/html; charset=Windows-31J" pageEncoding="Windows-31J" % http //www.atmarkit.co.jp/fjava/rensai3/mojibake01/mojibake01.html 参照
https://w.atwiki.jp/mainichi-matome/pages/1820.html
JDorama.com http //www.jdorama.com/ ドメイン管理者の国はシンガポール Q:誰がウェブサイトを所有しているか? A:シンガポールの日本のドラマ愛好家。 Kegareta Shita [汚れた舌] 部分転載:http //www.jdorama.com/drama.936.htm "Naoko s Filthy Tongue has fans licking lips" Yu Yamada gets leg over actor Shun Oguri to get leg up in career http //www.jdorama.com/viewtopic.php?p=766917#766917 The Nakamura-Takeuchi split she gets the kid, alimony and a new career, he gets hosed 部分転載:http //www.jdorama.com/viewtopic.php?p=748428#748428 Sexy thespian Tomoko Yamaguchi uses booby trap to snare audience for TV show http //www.jdorama.com/viewtopic.php?p=727787#727787 Offbeat panty bar offers uninhibited lust with the improper stranger http //www.jdorama.com/viewtopic.php?p=695445#695445 How low can they go? Pseudo pedo-porn peddlers loll in lascivious limbo http //www.jdorama.com/viewtopic.php?p=682741#682741 Sulky Erika Sawajiri not quite big enough to pull off prima donna pouting http //www.jdorama.com/viewtopic.php?p=681841#681841 Catfights common as females fiercely flay one other in the workplace http //www.jdorama.com/viewtopic.php?p=674719#674719 Latest Akihabara geek fetish? One-eyed virginal maid mummies http //www.jdorama.com/viewtopic.php?p=668311#668311 Kumi Koda Masahiro Nakai getting intimate while SMAP and Avex just flirt http //www.jdorama.com/viewtopic.php?p=668297#668297 Queen of the cover girls asked to turn over a new leaf http //www.jdorama.com/viewtopic.php?p=665191#665191 Stressed teachers indulging their wild sides with coworkers, parents -- and students http //www.jdorama.com/viewtopic.php?p=656423#656423 Egos, abortion or mutts -- what caused the Ayu-Nagase split? http //www.jdorama.com/viewtopic.php?p=654386#654386 Train Cafe takes hands-on approach in fight against molesting http //www.jdorama.com/viewtopic.php?p=653907#653907 Money burning a hole in your pocket? Learn how to flash the cash, Hamasaki-style http //www.jdorama.com/viewtopic.php?p=624491#624491 Koyuki set to return after agency agonies kick her out of the spotlight http //www.jdorama.com/viewtopic.php?p=616856#616856 Seafood fanatics forget fugu you ve a new poison to pick http //www.jdorama.com/viewtopic.php?p=545719#545719 Tell-all actress blasts Japanese showbiz world http //www.jdorama.com/viewtopic.php?p=539736#539736 Train Cafe takes hands-on approach in fight against molesting http //www.jdorama.com/viewtopic.php?p=514919#514919 Supermodel suffers slings and arrows of outrageous fortune http //www.jdorama.com/viewtopic.php?p=514591#514591 Pesky perverts pry on otaku s dolled-up maids http //www.jdorama.com/viewtopic.php?p=515120#515120 English teaching DVDs get low down and dirty http //www.jdorama.com/viewtopic.php?p=509986#509986 Top baseball commentator the latest to strike out in NTVs string of sex scandals http //www.jdorama.com/viewtopic.php?p=490833#490833 Train Cafe takes hands-on approach in fight against molesting http //www.jdorama.com/viewtopic.php?p=487938#487938 Yumiko Shaku s romantic dreams exposed by legendarily leaky lover http //www.jdorama.com/viewtopic.php?p=449401#449401 One, two, poo in your shoe; three, four, wee on the floor http //www.jdorama.com/viewtopic.php?p=449092#449092 Good girl pays the price for being naughty instead of nice http //www.jdorama.com/viewtopic.php?p=440187#440187 Hand jiving pro-wrestler Koriki is the foul face of new cute http //www.jdorama.com/viewtopic.php?p=439126#439126 Sex workers on the ball with World Cup fever http //www.jdorama.com/viewtopic.php?p=420100#420100 Fallen Horiemon s new digs -- 3 tatami mats with bento and butt service 部分転載:http //www.jdorama.com/viewtopic.php?p=363876#363876 Pop-culture vultures spy cracks in famous family unit http //www.jdorama.com/viewtopic.php?p=353222#353222 Memoirs of a cocksure Kyoto rickshaw runner http //www.jdorama.com/viewtopic.php?p=339494#339494 Norika gets Octopussy-whipped over her Bond-age fantasy http //www.jdorama.com/viewtopic.php?p=337494#337494 TV dramas inspire privileged princesses to dress up lives as nightclub hostesses http //www.jdorama.com/viewtopic.php?p=323420#323420 Butchered kisses give man-eating Yuko taste of success http //www.jdorama.com/viewtopic.php?p=314689#314689 Fresh-faced drama queen told to act her age http //www.jdorama.com/viewtopic.php?p=312603#312603 Mobile phones making a monkey out of Japanese http //www.jdorama.com/viewtopic.php?p=310820#310820 From past beauty to buddy pregnancy, changes transform Japanese ladies lexicons 部分転載:http //www.jdorama.com/viewtopic.php?p=306291#306291 Gal geeks jump aboard hip to be square boom http //www.jdorama.com/viewtopic.php?p=271017#271017 Sweaty, smelly, cramped commuters squashed into state of rail rage http //www.jdorama.com/viewtopic.php?p=268288#268288 Bold women bathers spring the trapdoor of love http //www.jdorama.com/viewtopic.php?p=215808#215808 Guitar-wielding boyfriend strums Takako s chord http //www.jdorama.com/viewtopic.php?p=171495#171495 Naoko s Filthy Tongue has fans licking lips 部分転載:http //www.jdorama.com/viewtopic.php?p=163607#163607 Chocolate-flavored potato chips not hard to swallow http //www.jdorama.com/viewtopic.php?p=128715#128715 Kimutaku canned for walking tall at Cannes http //www.jdorama.com/viewtopic.php?p=99350#99350 Newborn won t stop rebirth of Ryoko s TV career http //www.jdorama.com/viewtopic.php?p=84557#84557 Ripe-figured Kyoka appears ready to bare fruit http //www.jdorama.com/viewtopic.php?p=72286#72286 Hirosue Ryoko shoots self in foot with shotgun wedding http //www.jdorama.com/viewtopic.php?p=42339#42339 関連ページ Catfights common as females fiercely flay one other in the workplace English teaching DVDs get low down and dirty Good girl pays the price for being naughty instead of nice How low can they go? Pseudo pedo-porn peddlers loll in lascivious limbo Latest Akihabara geek fetish? One-eyed virginal maid mummies Offbeat 'panty bar' offers uninhibited lust with the improper stranger One, Two, Poo in Your Shoe; Three, Four, Wee on the Floor Pesky perverts pry on otaku's dolled-up maids Sex workers on the ball with World Cup fever Stressed teachers indulging their wild sides with coworkers, parents -- and Top baseball commentator the latest to strike out in NTVs string of sex scandals WaiWaiの記事を転載した英語サイト:J 毎日新聞謝罪記事の問題点
https://w.atwiki.jp/jasagiri/pages/68.html
RFC:http //www5d.biglobe.ne.jp/~stssk/rfcjlist.html 規格対応エレメント表 http //meiert.com/en/indices/html-elements/ html5 http //www.html5.jp/ URI-Templates http //bitworking.org/projects/URI-Templates/ http //builder.japan.zdnet.com/sp/firefox-3-for-developer-2008/ StatusCode http //www.studyinghttp.net/status_code http //thoughtpad.net/alan-dean/http-headers-status.html http //d.hatena.ne.jp/IwamotoTakashi/20090429/p1 REST 何がRESTを良くするか:http //www.infoq.com/jp/news/2008/11/rest-api RESTfullなアプリケーションを記述する:http //www.infoq.com/jp/articles/subbu-allamaraju-rest REST API デザイン http //www.25hoursaday.com/weblog/2008/10/24/RESTAPIDesignInventMediaTypesNotProtocolsAndUnderstandTheImportanceOfHyperlinks.aspx OpenID:http //code.google.com/p/openidengine/ :http //www.atmarkit.co.jp/fsecurity/rensai/openid01/openid01.html :http //www.goodpic.com/mt/archives2/2008/01/openid_oauth.html :http //d.hatena.ne.jp/lyokato/20080816/1218866900 OAuth:http //www.atmarkit.co.jp/fsecurity/special/106oauth/oauth01.html
https://w.atwiki.jp/feedback1970/pages/57.html
memo source 1 /* Licensed to the Apache Software Foundation (ASF) under one or more 2 * contributor license agreements. See the NOTICE file distributed with 3 * this work for additional information regarding copyright ownership. 4 * The ASF licenses this file to You under the Apache License, Version 2.0 5 * (the "License"); you may not use this file except in compliance with 6 * the License. You may obtain a copy of the License at 7 * 8 * http //www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 #ifndef APACHE_HTTP_CONFIG_H 18 #define APACHE_HTTP_CONFIG_H 19 20 #include "apr_hooks.h" 21 #include "util_cfgtree.h" 22 23 #ifdef __cplusplus 24 extern "C" { 25 #endif 26 27 /** 28 * @file http_config.h 29 * @brief Apache Configuration 30 */ 31 32 /* 33 * The central data structures around here... 34 */ 35 36 /* Command dispatch structures... */ 37 38 /** 39 * How the directives arguments should be parsed. 40 * @remark Note that for all of these except RAW_ARGS, the config routine is 41 * passed a freshly allocated string which can be modified or stored 42 * or whatever... 43 */ 44 enum cmd_how { 45 RAW_ARGS, /** cmd_func parses command line itself */ 46 TAKE1, /** one argument only */ 47 TAKE2, /** two arguments only */ 48 ITERATE, /** one argument, occuring multiple times 49 * (e.g., IndexIgnore) 50 */ 51 ITERATE2, /** two arguments, 2nd occurs multiple times 52 * (e.g., AddIcon) 53 */ 54 FLAG, /** One of On or Off */ 55 NO_ARGS, /** No args at all, e.g. /Directory */ 56 TAKE12, /** one or two arguments */ 57 TAKE3, /** three arguments only */ 58 TAKE23, /** two or three arguments */ 59 TAKE123, /** one, two or three arguments */ 60 TAKE13 /** one or three arguments */ 61 }; 62 /** 63 * This structure is passed to a command which is being invoked, 64 * to carry a large variety of miscellaneous data which is all of 65 * use to *somebody*... 66 */ 67 typedef struct cmd_parms_struct cmd_parms; 68 69 #if defined(AP_HAVE_DESIGNATED_INITIALIZER) || defined(DOXYGEN) 70 71 /** 72 * All the types of functions that can be used in directives 73 * @internal 74 */ 75 typedef union { 76 /** function to call for a no-args */ 77 const char *(*no_args) (cmd_parms *parms, void *mconfig); 78 /** function to call for a raw-args */ 79 const char *(*raw_args) (cmd_parms *parms, void *mconfig, 80 const char *args); 81 /** function to call for a take1 */ 82 const char *(*take1) (cmd_parms *parms, void *mconfig, const char *w); 83 /** function to call for a take2 */ 84 const char *(*take2) (cmd_parms *parms, void *mconfig, const char *w, 85 const char *w2); 86 /** function to call for a take3 */ 87 const char *(*take3) (cmd_parms *parms, void *mconfig, const char *w, 88 const char *w2, const char *w3); 89 /** function to call for a flag */ 90 const char *(*flag) (cmd_parms *parms, void *mconfig, int on); 91 } cmd_func; 92 93 /** This configuration directive does not take any arguments */ 94 # define AP_NO_ARGS func.no_args 95 /** This configuration directive will handle it s own parsing of arguments*/ 96 # define AP_RAW_ARGS func.raw_args 97 /** This configuration directive takes 1 argument*/ 98 # define AP_TAKE1 func.take1 99 /** This configuration directive takes 2 arguments */ 100 # define AP_TAKE2 func.take2 101 /** This configuration directive takes 3 arguments */ 102 # define AP_TAKE3 func.take3 103 /** This configuration directive takes a flag (on/off) as a argument*/ 104 # define AP_FLAG func.flag 105 106 /** method of declaring a directive with no arguments */ 107 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 108 { directive, { .no_args=func }, mconfig, where, RAW_ARGS, help } 109 /** method of declaring a directive with raw argument parsing */ 110 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 111 { directive, { .raw_args=func }, mconfig, where, RAW_ARGS, help } 112 /** method of declaring a directive which takes 1 argument */ 113 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 114 { directive, { .take1=func }, mconfig, where, TAKE1, help } 115 /** method of declaring a directive which takes multiple arguments */ 116 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 117 { directive, { .take1=func }, mconfig, where, ITERATE, help } 118 /** method of declaring a directive which takes 2 arguments */ 119 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 120 { directive, { .take2=func }, mconfig, where, TAKE2, help } 121 /** method of declaring a directive which takes 1 or 2 arguments */ 122 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 123 { directive, { .take2=func }, mconfig, where, TAKE12, help } 124 /** method of declaring a directive which takes multiple 2 arguments */ 125 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 126 { directive, { .take2=func }, mconfig, where, ITERATE2, help } 127 /** method of declaring a directive which takes 1 or 3 arguments */ 128 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 129 { directive, { .take3=func }, mconfig, where, TAKE13, help } 130 /** method of declaring a directive which takes 2 or 3 arguments */ 131 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 132 { directive, { .take3=func }, mconfig, where, TAKE23, help } 133 /** method of declaring a directive which takes 1 to 3 arguments */ 134 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 135 { directive, { .take3=func }, mconfig, where, TAKE123, help } 136 /** method of declaring a directive which takes 3 arguments */ 137 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 138 { directive, { .take3=func }, mconfig, where, TAKE3, help } 139 /** method of declaring a directive which takes a flag (on/off) as a argument*/ 140 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 141 { directive, { .flag=func }, mconfig, where, FLAG, help } 142 143 #else /* AP_HAVE_DESIGNATED_INITIALIZER */ 144 145 typedef const char *(*cmd_func) (); 146 147 # define AP_NO_ARGS func 148 # define AP_RAW_ARGS func 149 # define AP_TAKE1 func 150 # define AP_TAKE2 func 151 # define AP_TAKE3 func 152 # define AP_FLAG func 153 154 # define AP_INIT_NO_ARGS(directive, func, mconfig, where, help) \ 155 { directive, func, mconfig, where, RAW_ARGS, help } 156 # define AP_INIT_RAW_ARGS(directive, func, mconfig, where, help) \ 157 { directive, func, mconfig, where, RAW_ARGS, help } 158 # define AP_INIT_TAKE1(directive, func, mconfig, where, help) \ 159 { directive, func, mconfig, where, TAKE1, help } 160 # define AP_INIT_ITERATE(directive, func, mconfig, where, help) \ 161 { directive, func, mconfig, where, ITERATE, help } 162 # define AP_INIT_TAKE2(directive, func, mconfig, where, help) \ 163 { directive, func, mconfig, where, TAKE2, help } 164 # define AP_INIT_TAKE12(directive, func, mconfig, where, help) \ 165 { directive, func, mconfig, where, TAKE12, help } 166 # define AP_INIT_ITERATE2(directive, func, mconfig, where, help) \ 167 { directive, func, mconfig, where, ITERATE2, help } 168 # define AP_INIT_TAKE13(directive, func, mconfig, where, help) \ 169 { directive, func, mconfig, where, TAKE13, help } 170 # define AP_INIT_TAKE23(directive, func, mconfig, where, help) \ 171 { directive, func, mconfig, where, TAKE23, help } 172 # define AP_INIT_TAKE123(directive, func, mconfig, where, help) \ 173 { directive, func, mconfig, where, TAKE123, help } 174 # define AP_INIT_TAKE3(directive, func, mconfig, where, help) \ 175 { directive, func, mconfig, where, TAKE3, help } 176 # define AP_INIT_FLAG(directive, func, mconfig, where, help) \ 177 { directive, func, mconfig, where, FLAG, help } 178 179 #endif /* AP_HAVE_DESIGNATED_INITIALIZER */ 180 181 /** 182 * The command record structure. Each modules can define a table of these 183 * to define the directives it will implement. 184 */ 185 typedef struct command_struct command_rec; 186 struct command_struct { 187 /** Name of this command */ 188 const char *name; 189 /** The function to be called when this directive is parsed */ 190 cmd_func func; 191 /** Extra data, for functions which implement multiple commands... */ 192 void *cmd_data; 193 /** What overrides need to be allowed to enable this command. */ 194 int req_override; 195 /** What the command expects as arguments 196 * @defvar cmd_how args_how*/ 197 enum cmd_how args_how; 198 199 /** usage message, in case of syntax errors */ 200 const char *errmsg; 201 }; 202 203 /** 204 * @defgroup ConfigDirectives Allowed locations for configuration directives. 205 * 206 * The allowed locations for a configuration directive are the union of 207 * those indicated by each set bit in the req_override mask. 208 * 209 * @{ 210 */ 211 #define OR_NONE 0 /** *.conf is not available anywhere in this override */ 212 #define OR_LIMIT 1 /** *.conf inside Directory or Location 213 and .htaccess when AllowOverride Limit */ 214 #define OR_OPTIONS 2 /** *.conf anywhere 215 and .htaccess when AllowOverride Options */ 216 #define OR_FILEINFO 4 /** *.conf anywhere 217 and .htaccess when AllowOverride FileInfo */ 218 #define OR_AUTHCFG 8 /** *.conf inside Directory or Location 219 and .htaccess when AllowOverride AuthConfig */ 220 #define OR_INDEXES 16 /** *.conf anywhere 221 and .htaccess when AllowOverride Indexes */ 222 #define OR_UNSET 32 /** unset a directive (in Allow) */ 223 #define ACCESS_CONF 64 /** *.conf inside Directory or Location */ 224 #define RSRC_CONF 128 /** *.conf outside Directory or Location */ 225 #define EXEC_ON_READ 256 /** force directive to execute a command 226 which would modify the configuration (like including another 227 file, or IFModule */ 228 /** this directive can be placed anywhere */ 229 #define OR_ALL (OR_LIMIT|OR_OPTIONS|OR_FILEINFO|OR_AUTHCFG|OR_INDEXES) 230 231 /** @} */ 232 233 /** 234 * This can be returned by a function if they don t wish to handle 235 * a command. Make it something not likely someone will actually use 236 * as an error code. 237 */ 238 #define DECLINE_CMD "\a\b" 239 240 /** Common structure for reading of config files / passwd files etc. */ 241 typedef struct ap_configfile_t ap_configfile_t; 242 struct ap_configfile_t { 243 int (*getch) (void *param); /** a getc()-like function */ 244 void *(*getstr) (void *buf, size_t bufsiz, void *param); 245 /** a fgets()-like function */ 246 int (*close) (void *param); /** a close handler function */ 247 void *param; /** the argument passed to getch/getstr/close */ 248 const char *name; /** the filename / description */ 249 unsigned line_number; /** current line number, starting at 1 */ 250 }; 251 252 /** 253 * This structure is passed to a command which is being invoked, 254 * to carry a large variety of miscellaneous data which is all of 255 * use to *somebody*... 256 */ 257 struct cmd_parms_struct { 258 /** Argument to command from cmd_table */ 259 void *info; 260 /** Which allow-override bits are set */ 261 int override; 262 /** Which methods are Limit ed */ 263 apr_int64_t limited; 264 /** methods which are limited */ 265 apr_array_header_t *limited_xmethods; 266 /** methods which are xlimited */ 267 ap_method_list_t *xlimited; 268 269 /** Config file structure. */ 270 ap_configfile_t *config_file; 271 /** the directive specifying this command */ 272 ap_directive_t *directive; 273 274 /** Pool to allocate new storage in */ 275 apr_pool_t *pool; 276 /** Pool for scratch memory; persists during configuration, but 277 * wiped before the first request is served... */ 278 apr_pool_t *temp_pool; 279 /** Server_rec being configured for */ 280 server_rec *server; 281 /** If configuring for a directory, pathname of that directory. 282 * NOPE! That s what it meant previous to the existance of Files , 283 * Location and regex matching. Now the only usefulness that can be 284 * derived from this field is whether a command is being called in a 285 * server context (path == NULL) or being called in a dir context 286 * (path != NULL). */ 287 char *path; 288 /** configuration command */ 289 const command_rec *cmd; 290 291 /** per_dir_config vector passed to handle_command */ 292 struct ap_conf_vector_t *context; 293 /** directive with syntax error */ 294 const ap_directive_t *err_directive; 295 }; 296 297 /** 298 * Module structures. Just about everything is dispatched through 299 * these, directly or indirectly (through the command and handler 300 * tables). 301 */ 302 typedef struct module_struct module; 303 struct module_struct { 304 /** API version, *not* module version; check that module is 305 * compatible with this version of the server. 306 */ 307 int version; 308 /** API minor version. Provides API feature milestones. Not checked 309 * during module init */ 310 int minor_version; 311 /** Index to this modules structures in config vectors. */ 312 int module_index; 313 314 /** The name of the module s C file */ 315 const char *name; 316 /** The handle for the DSO. Internal use only */ 317 void *dynamic_load_handle; 318 319 /** A pointer to the next module in the list 320 * @defvar module_struct *next */ 321 struct module_struct *next; 322 323 /** Magic Cookie to identify a module structure; It s mainly 324 * important for the DSO facility (see also mod_so). */ 325 unsigned long magic; 326 327 /** Function to allow MPMs to re-write command line arguments. This 328 * hook is only available to MPMs. 329 * @param The process that the server is running in. 330 */ 331 void (*rewrite_args) (process_rec *process); 332 /** Function to allow all modules to create per directory configuration 333 * structures. 334 * @param p The pool to use for all allocations. 335 * @param dir The directory currently being processed. 336 * @return The per-directory structure created 337 */ 338 void *(*create_dir_config) (apr_pool_t *p, char *dir); 339 /** Function to allow all modules to merge the per directory configuration 340 * structures for two directories. 341 * @param p The pool to use for all allocations. 342 * @param base_conf The directory structure created for the parent directory. 343 * @param new_conf The directory structure currently being processed. 344 * @return The new per-directory structure created 345 */ 346 void *(*merge_dir_config) (apr_pool_t *p, void *base_conf, void *new_conf); 347 /** Function to allow all modules to create per server configuration 348 * structures. 349 * @param p The pool to use for all allocations. 350 * @param s The server currently being processed. 351 * @return The per-server structure created 352 */ 353 void *(*create_server_config) (apr_pool_t *p, server_rec *s); 354 /** Function to allow all modules to merge the per server configuration 355 * structures for two servers. 356 * @param p The pool to use for all allocations. 357 * @param base_conf The directory structure created for the parent directory. 358 * @param new_conf The directory structure currently being processed. 359 * @return The new per-directory structure created 360 */ 361 void *(*merge_server_config) (apr_pool_t *p, void *base_conf, 362 void *new_conf); 363 364 /** A command_rec table that describes all of the directives this module 365 * defines. */ 366 const command_rec *cmds; 367 368 /** A hook to allow modules to hook other points in the request processing. 369 * In this function, modules should call the ap_hook_*() functions to 370 * register an interest in a specific step in processing the current 371 * request. 372 * @param p the pool to use for all allocations 373 */ 374 void (*register_hooks) (apr_pool_t *p); 375 }; 376 377 /** 378 * @defgroup ModuleInit Module structure initializers 379 * 380 * Initializer for the first few module slots, which are only 381 * really set up once we start running. Note that the first two slots 382 * provide a version check; this should allow us to deal with changes to 383 * the API. The major number should reflect changes to the API handler table 384 * itself or removal of functionality. The minor number should reflect 385 * additions of functionality to the existing API. (the server can detect 386 * an old-format module, and either handle it back-compatibly, or at least 387 * signal an error). See src/include/ap_mmn.h for MMN version history. 388 * @{ 389 */ 390 391 /** The one used in Apache 1.3, which will deliberately cause an error */ 392 #define STANDARD_MODULE_STUFF this_module_needs_to_be_ported_to_apache_2_0 393 394 /** Use this in all standard modules */ 395 #define STANDARD20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 396 MODULE_MAGIC_NUMBER_MINOR, \ 397 -1, \ 398 __FILE__, \ 399 NULL, \ 400 NULL, \ 401 MODULE_MAGIC_COOKIE, \ 402 NULL /* rewrite args spot */ 403 404 /** Use this only in MPMs */ 405 #define MPM20_MODULE_STUFF MODULE_MAGIC_NUMBER_MAJOR, \ 406 MODULE_MAGIC_NUMBER_MINOR, \ 407 -1, \ 408 __FILE__, \ 409 NULL, \ 410 NULL, \ 411 MODULE_MAGIC_COOKIE 412 413 /** @} */ 414 415 /* CONFIGURATION VECTOR FUNCTIONS */ 416 417 /** configuration vector structure */ 418 typedef struct ap_conf_vector_t ap_conf_vector_t; 419 420 /** 421 * Generic accessors for other modules to get at their own module-specific 422 * data 423 * @param conf_vector The vector in which the modules configuration is stored. 424 * usually r- per_dir_config or s- module_config 425 * @param m The module to get the data for. 426 * @return The module-specific data 427 */ 428 AP_DECLARE(void *) ap_get_module_config(const ap_conf_vector_t *cv, 429 const module *m); 430 431 /** 432 * Generic accessors for other modules to set at their own module-specific 433 * data 434 * @param conf_vector The vector in which the modules configuration is stored. 435 * usually r- per_dir_config or s- module_config 436 * @param m The module to set the data for. 437 * @param val The module-specific data to set 438 */ 439 AP_DECLARE(void) ap_set_module_config(ap_conf_vector_t *cv, const module *m, 440 void *val); 441 442 #if !defined(AP_DEBUG) 443 444 #define ap_get_module_config(v,m) \ 445 (((void **)(v))[(m)- module_index]) 446 #define ap_set_module_config(v,m,val) \ 447 ((((void **)(v))[(m)- module_index]) = (val)) 448 449 #endif /* AP_DEBUG */ 450 451 452 /** 453 * Generic command handling function for strings 454 * @param cmd The command parameters for this directive 455 * @param struct_ptr pointer into a given type 456 * @param arg The argument to the directive 457 * @return An error string or NULL on success 458 */ 459 AP_DECLARE_NONSTD(const char *) ap_set_string_slot(cmd_parms *cmd, 460 void *struct_ptr, 461 const char *arg); 462 463 /** 464 * Generic command handling function for integers 465 * @param cmd The command parameters for this directive 466 * @param struct_ptr pointer into a given type 467 * @param arg The argument to the directive 468 * @return An error string or NULL on success 469 */ 470 AP_DECLARE_NONSTD(const char *) ap_set_int_slot(cmd_parms *cmd, 471 void *struct_ptr, 472 const char *arg); 473 474 /** 475 * Return true if the specified method is limited by being listed in 476 * a Limit container, or by *not* being listed in a LimiteExcept 477 * container. 478 * 479 * @param method Pointer to a string specifying the method to check. 480 * @param cmd Pointer to the cmd_parms structure passed to the 481 * directive handler. 482 * @return 0 if the method is not limited in the current scope 483 */ 484 AP_DECLARE(int) ap_method_is_limited(cmd_parms *cmd, const char *method); 485 486 /** 487 * Generic command handling function for strings, always sets the value 488 * to a lowercase string 489 * @param cmd The command parameters for this directive 490 * @param struct_ptr pointer into a given type 491 * @param arg The argument to the directive 492 * @return An error string or NULL on success 493 */ 494 AP_DECLARE_NONSTD(const char *) ap_set_string_slot_lower(cmd_parms *cmd, 495 void *struct_ptr, 496 const char *arg); 497 /** 498 * Generic command handling function for flags 499 * @param cmd The command parameters for this directive 500 * @param struct_ptr pointer into a given type 501 * @param arg The argument to the directive (either 1 or 0) 502 * @return An error string or NULL on success 503 */ 504 AP_DECLARE_NONSTD(const char *) ap_set_flag_slot(cmd_parms *cmd, 505 void *struct_ptr, 506 int arg); 507 /** 508 * Generic command handling function for files 509 * @param cmd The command parameters for this directive 510 * @param struct_ptr pointer into a given type 511 * @param arg The argument to the directive 512 * @return An error string or NULL on success 513 */ 514 AP_DECLARE_NONSTD(const char *) ap_set_file_slot(cmd_parms *cmd, 515 void *struct_ptr, 516 const char *arg); 517 /** 518 * Generic command handling function to respond with cmd- help as an error 519 * @param cmd The command parameters for this directive 520 * @param struct_ptr pointer into a given type 521 * @param arg The argument to the directive 522 * @return The cmd- help value as the error string 523 * @tip This allows simple declarations such as; 524 * pre 525 * AP_INIT_RAW_ARGS("Foo", ap_set_deprecated, NULL, OR_ALL, 526 * "The Foo directive is no longer supported, use Bar"), 527 * /pre 528 */ 529 AP_DECLARE_NONSTD(const char *) ap_set_deprecated(cmd_parms *cmd, 530 void *struct_ptr, 531 const char *arg); 532 /** 533 * For modules which need to read config files, open logs, etc. this returns 534 * the canonical form of fname made absolute to ap_server_root. 535 * @param p pool to allocate data from 536 * @param fname The file name 537 */ 538 AP_DECLARE(char *) ap_server_root_relative(apr_pool_t *p, const char *fname); 539 540 /* Finally, the hook for dynamically loading modules in... */ 541 542 /** 543 * Add a module to the server 544 * @param m The module structure of the module to add 545 * @param p The pool of the same lifetime as the module 546 */ 547 AP_DECLARE(void) ap_add_module(module *m, apr_pool_t *p); 548 549 /** 550 * Remove a module from the server. There are some caveats 551 * when the module is removed, its slot is lost so all the current 552 * per-dir and per-server configurations are invalid. So we should 553 * only ever call this function when you are invalidating almost 554 * all our current data. I.e. when doing a restart. 555 * @param m the module structure of the module to remove 556 */ 557 AP_DECLARE(void) ap_remove_module(module *m); 558 /** 559 * Add a module to the chained modules list and the list of loaded modules 560 * @param m The module structure of the module to add 561 * @param p The pool with the same lifetime as the module 562 */ 563 AP_DECLARE(void) ap_add_loaded_module(module *mod, apr_pool_t *p); 564 /** 565 * Remove a module fromthe chained modules list and the list of loaded modules 566 * @param m the module structure of the module to remove 567 */ 568 AP_DECLARE(void) ap_remove_loaded_module(module *mod); 569 /** 570 * Add a module to the list of loaded module based on the name of the 571 * module 572 * @param name The name of the module 573 * @param p The pool valid for the lifetime of the module 574 * @return 1 on success, 0 on failure 575 */ 576 AP_DECLARE(int) ap_add_named_module(const char *name, apr_pool_t *p); 577 /** 578 * Find the name of the specified module 579 * @param m The module to get the name for 580 * @return the name of the module 581 */ 582 AP_DECLARE(const char *) ap_find_module_name(module *m); 583 /** 584 * Find a module based on the name of the module 585 * @param name the name of the module 586 * @return the module structure if found, NULL otherwise 587 */ 588 AP_DECLARE(module *) ap_find_linked_module(const char *name); 589 590 /** 591 * Open a ap_configfile_t as apr_file_t 592 * @param ret_cfg open ap_configfile_t struct pointer 593 * @param p The pool to allocate the structure from 594 * @param name the name of the file to open 595 */ 596 AP_DECLARE(apr_status_t) ap_pcfg_openfile(ap_configfile_t **ret_cfg, 597 apr_pool_t *p, const char *name); 598 599 /** 600 * Allocate a ap_configfile_t handle with user defined functions and params 601 * @param p The pool to allocate from 602 * @param descr The name of the file 603 * @param param The argument passed to getch/getstr/close 604 * @param getc_func The getch function 605 * @param gets_func The getstr function 606 * @param close_func The close function 607 */ 608 AP_DECLARE(ap_configfile_t *) ap_pcfg_open_custom(apr_pool_t *p, 609 const char *descr, 610 void *param, 611 int(*getc_func)(void*), 612 void *(*gets_func) (void *buf, size_t bufsiz, void *param), 613 int(*close_func)(void *param)); 614 615 /** 616 * Read one line from open ap_configfile_t, strip LF, increase line number 617 * @param buf place to store the line read 618 * @param bufsize size of the buffer 619 * @param cfp File to read from 620 * @return 1 on success, 0 on failure 621 */ 622 AP_DECLARE(int) ap_cfg_getline(char *buf, size_t bufsize, ap_configfile_t *cfp); 623 624 /** 625 * Read one char from open configfile_t, increase line number upon LF 626 * @param cfp The file to read from 627 * @return the character read 628 */ 629 AP_DECLARE(int) ap_cfg_getc(ap_configfile_t *cfp); 630 631 /** 632 * Detach from open ap_configfile_t, calling the close handler 633 * @param cfp The file to close 634 * @return 1 on sucess, 0 on failure 635 */ 636 AP_DECLARE(int) ap_cfg_closefile(ap_configfile_t *cfp); 637 638 /** 639 * Read all data between the current foo and the matching /foo . All 640 * of this data is forgotten immediately. 641 * @param cmd The cmd_parms to pass to the directives inside the container 642 * @param directive The directive name to read until 643 * @return Error string on failure, NULL on success 644 */ 645 AP_DECLARE(const char *) ap_soak_end_container(cmd_parms *cmd, char *directive); 646 647 /** 648 * Read all data between the current foo and the matching /foo and build 649 * a config tree from it 650 * @param p pool to allocate from 651 * @param temp_pool Temporary pool to allocate from 652 * @param parms The cmd_parms to pass to all directives read 653 * @param current The current node in the tree 654 * @param curr_parent The current parent node 655 * @param orig_directive The directive to read until hit. 656 * @return Error string on failure, NULL on success 657 */ 658 AP_DECLARE(const char *) ap_build_cont_config(apr_pool_t *p, 659 apr_pool_t *temp_pool, 660 cmd_parms *parms, 661 ap_directive_t **current, 662 ap_directive_t **curr_parent, 663 char *orig_directive); 664 665 /** 666 * Build a config tree from a config file 667 * @param parms The cmd_parms to pass to all of the directives in the file 668 * @param conf_pool The pconf pool 669 * @param temp_pool The temporary pool 670 * @param conftree Place to store the root node of the config tree 671 * @return Error string on erro, NULL otherwise 672 */ 673 AP_DECLARE(const char *) ap_build_config(cmd_parms *parms, 674 apr_pool_t *conf_pool, 675 apr_pool_t *temp_pool, 676 ap_directive_t **conftree); 677 678 /** 679 * Walk a config tree and setup the server s internal structures 680 * @param conftree The config tree to walk 681 * @param parms The cmd_parms to pass to all functions 682 * @param section_vector The per-section config vector. 683 * @return Error string on error, NULL otherwise 684 */ 685 AP_DECLARE(const char *) ap_walk_config(ap_directive_t *conftree, 686 cmd_parms *parms, 687 ap_conf_vector_t *section_vector); 688 689 /** 690 * @defgroup ap_check_cmd_context ap_check_cmd_context 691 * @{ 692 */ 693 /** 694 * Check the context a command is used in. 695 * @param cmd The command to check 696 * @param forbidden Where the command is forbidden. 697 * @return Error string on error, NULL on success 698 */ 699 AP_DECLARE(const char *) ap_check_cmd_context(cmd_parms *cmd, 700 unsigned forbidden); 701 702 #define NOT_IN_VIRTUALHOST 0x01 /** Forbidden in Virtualhost */ 703 #define NOT_IN_LIMIT 0x02 /** Forbidden in Limit */ 704 #define NOT_IN_DIRECTORY 0x04 /** Forbidden in Directory */ 705 #define NOT_IN_LOCATION 0x08 /** Forbidden in Location */ 706 #define NOT_IN_FILES 0x10 /** Forbidden in Files */ 707 /** Forbidden in Directory / Location / Files */ 708 #define NOT_IN_DIR_LOC_FILE (NOT_IN_DIRECTORY|NOT_IN_LOCATION|NOT_IN_FILES) 709 /** Forbidden in VirtualHost / Limit / Directory / Location / Files */ 710 #define GLOBAL_ONLY (NOT_IN_VIRTUALHOST|NOT_IN_LIMIT|NOT_IN_DIR_LOC_FILE) 711 712 /** @} */ 713 714 #ifdef CORE_PRIVATE 715 716 /** 717 * The topmost module in the list 718 * @defvar module *ap_top_module 719 */ 720 AP_DECLARE_DATA extern module *ap_top_module; 721 722 /** 723 * Array of all statically linked modules 724 * @defvar module *ap_prelinked_modules[] 725 */ 726 AP_DECLARE_DATA extern module *ap_prelinked_modules[]; 727 /** 728 * Array of all preloaded modules 729 * @defvar module *ap_preloaded_modules[] 730 */ 731 AP_DECLARE_DATA extern module *ap_preloaded_modules[]; 732 /** 733 * Array of all loaded modules 734 * @defvar module **ap_loaded_modules 735 */ 736 AP_DECLARE_DATA extern module **ap_loaded_modules; 737 738 /* For mod_so.c... */ 739 /** Run a single module s two create_config hooks 740 * @param p the pool to allocate from 741 * @param s The server to configure for. 742 * @param m The module to configure 743 */ 744 AP_DECLARE(void) ap_single_module_configure(apr_pool_t *p, server_rec *s, 745 module *m); 746 747 /* For http_main.c... */ 748 /** 749 * Add all of the prelinked modules into the loaded module list 750 * @param process The process that is currently running the server 751 */ 752 AP_DECLARE(void) ap_setup_prelinked_modules(process_rec *process); 753 754 /** 755 * Show the preloaded configuration directives, the help string explaining 756 * the directive arguments, in what module they are handled, and in 757 * what parts of the configuration they are allowed. Used for httpd -h. 758 */ 759 AP_DECLARE(void) ap_show_directives(void); 760 761 /** 762 * Show the preloaded module names. Used for httpd -l. 763 */ 764 AP_DECLARE(void) ap_show_modules(void); 765 766 /** 767 * Show the MPM name. Used in reporting modules such as mod_info to 768 * provide extra information to the user 769 */ 770 AP_DECLARE(const char *) ap_show_mpm(void); 771 772 /** 773 * Read all config files and setup the server 774 * @param process The process running the server 775 * @param temp_pool A pool to allocate temporary data from. 776 * @param config_name The name of the config file 777 * @param conftree Place to store the root of the config tree 778 * @return The setup server_rec list. 779 */ 780 AP_DECLARE(server_rec *) ap_read_config(process_rec *process, 781 apr_pool_t *temp_pool, 782 const char *config_name, 783 ap_directive_t **conftree); 784 785 /** 786 * Run all rewrite args hooks for loaded modules 787 * @param process The process currently running the server 788 */ 789 AP_DECLARE(void) ap_run_rewrite_args(process_rec *process); 790 791 /** 792 * Run the register hooks function for a specified module 793 * @param m The module to run the register hooks function fo 794 * @param p The pool valid for the lifetime of the module 795 */ 796 AP_DECLARE(void) ap_register_hooks(module *m, apr_pool_t *p); 797 798 /** 799 * Setup all virtual hosts 800 * @param p The pool to allocate from 801 * @param main_server The head of the server_rec list 802 */ 803 AP_DECLARE(void) ap_fixup_virtual_hosts(apr_pool_t *p, 804 server_rec *main_server); 805 806 /* For http_request.c... */ 807 808 /** 809 * Setup the config vector for a request_rec 810 * @param p The pool to allocate the config vector from 811 * @return The config vector 812 */ 813 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_request_config(apr_pool_t *p); 814 815 /** 816 * Setup the config vector for per dir module configs 817 * @param p The pool to allocate the config vector from 818 * @return The config vector 819 */ 820 AP_CORE_DECLARE(ap_conf_vector_t *) ap_create_per_dir_config(apr_pool_t *p); 821 822 /** 823 * Run all of the modules merge per dir config functions 824 * @param p The pool to pass to the merge functions 825 * @param base The base directory config structure 826 * @param new_conf The new directory config structure 827 */ 828 AP_CORE_DECLARE(ap_conf_vector_t*) ap_merge_per_dir_configs(apr_pool_t *p, 829 ap_conf_vector_t *base, 830 ap_conf_vector_t *new_conf); 831 832 /* For http_connection.c... */ 833 /** 834 * Setup the config vector for a connection_rec 835 * @param p The pool to allocate the config vector from 836 * @return The config vector 837 */ 838 AP_CORE_DECLARE(ap_conf_vector_t*) ap_create_conn_config(apr_pool_t *p); 839 840 /* For http_core.c... ( Directory command and virtual hosts) */ 841 842 /** 843 * parse an htaccess file 844 * @param resulting htaccess_result 845 * @param r The request currently being served 846 * @param override Which overrides are active 847 * @param path The path to the htaccess file 848 * @param access_name The list of possible names for .htaccess files 849 * int The status of the current request 850 */ 851 AP_CORE_DECLARE(int) ap_parse_htaccess(ap_conf_vector_t **result, 852 request_rec *r, int override, 853 const char *path, 854 const char *access_name); 855 856 /** 857 * Setup a virtual host 858 * @param p The pool to allocate all memory from 859 * @param hostname The hostname of the virtual hsot 860 * @param main_server The main server for this Apache configuration 861 * @param ps Place to store the new server_rec 862 * return Error string on error, NULL on success 863 */ 864 AP_CORE_DECLARE(const char *) ap_init_virtual_host(apr_pool_t *p, 865 const char *hostname, 866 server_rec *main_server, 867 server_rec **); 868 869 /** 870 * Process the config file for Apache 871 * @param s The server rec to use for the command parms 872 * @param fname The name of the config file 873 * @param conftree The root node of the created config tree 874 * @param p Pool for general allocation 875 * @param ptem Pool for temporary allocation 876 */ 877 AP_DECLARE(void) ap_process_resource_config(server_rec *s, const char *fname, 878 ap_directive_t **conftree, 879 apr_pool_t *p, apr_pool_t *ptemp); 880 881 /** 882 * Process all directives in the config tree 883 * @param s The server rec to use in the command parms 884 * @param conftree The config tree to process 885 * @param p The pool for general allocation 886 * @param ptemp The pool for temporary allocations 887 */ 888 AP_DECLARE(void) ap_process_config_tree(server_rec *s, ap_directive_t *conftree, 889 apr_pool_t *p, apr_pool_t *ptemp); 890 891 /* Module-method dispatchers, also for http_request.c */ 892 /** 893 * Run the handler phase of each module until a module accepts the 894 * responsibility of serving the request 895 * @param r The current request 896 * @return The status of the current request 897 */ 898 AP_CORE_DECLARE(int) ap_invoke_handler(request_rec *r); 899 900 /* for mod_perl */ 901 902 /** 903 * Find a given directive in a command_rec table 904 * @param name The directive to search for 905 * @param cmds The table to search 906 * @return The directive definition of the specified directive 907 */ 908 AP_CORE_DECLARE(const command_rec *) ap_find_command(const char *name, 909 const command_rec *cmds); 910 911 /** 912 * Find a given directive in a list module 913 * @param cmd_name The directive to search for 914 * @param mod The module list to search 915 * @return The directive definition of the specified directive 916 */ 917 AP_CORE_DECLARE(const command_rec *) ap_find_command_in_modules(const char *cmd_name, 918 module **mod); 919 920 /** 921 * Ask a module to create per-server and per-section (dir/loc/file) configs 922 * (if it hasn t happened already). The results are stored in the server s 923 * config, and the specified per-section config vector. 924 * @param server The server to operate upon. 925 * @param section_vector The per-section config vector. 926 * @param section Which section to create a config for. 927 * @param mod The module which is defining the config data. 928 * @param pconf A pool for all configuration allocations. 929 * @return The (new) per-section config data. 930 */ 931 AP_CORE_DECLARE(void *) ap_set_config_vectors(server_rec *server, 932 ap_conf_vector_t *section_vector, 933 const char *section, 934 module *mod, apr_pool_t *pconf); 935 936 #endif 937 938 /* Hooks */ 939 940 /** 941 * Run the header parser functions for each module 942 * @param r The current request 943 * @return OK or DECLINED 944 */ 945 AP_DECLARE_HOOK(int,header_parser,(request_rec *r)) 946 947 /** 948 * Run the pre_config function for each module 949 * @param pconf The config pool 950 * @param plog The logging streams pool 951 * @param ptemp The temporary pool 952 * @return OK or DECLINED on success anything else is a error 953 */ 954 AP_DECLARE_HOOK(int,pre_config,(apr_pool_t *pconf,apr_pool_t *plog, 955 apr_pool_t *ptemp)) 956 957 958 /** 959 * Run the post_config function for each module 960 * @param pconf The config pool 961 * @param plog The logging streams pool 962 * @param ptemp The temporary pool 963 * @param s The list of server_recs 964 * @return OK or DECLINED on success anything else is a error 965 */ 966 AP_DECLARE_HOOK(int,post_config,(apr_pool_t *pconf,apr_pool_t *plog, 967 apr_pool_t *ptemp,server_rec *s)) 968 969 /** 970 * Run the open_logs functions for each module 971 * @param pconf The config pool 972 * @param plog The logging streams pool 973 * @param ptemp The temporary pool 974 * @param s The list of server_recs 975 * @return OK or DECLINED on success anything else is a error 976 */ 977 AP_DECLARE_HOOK(int,open_logs,(apr_pool_t *pconf,apr_pool_t *plog, 978 apr_pool_t *ptemp,server_rec *s)) 979 980 /** 981 * Run the child_init functions for each module 982 * @param pchild The child pool 983 * @param s The list of server_recs in this server 984 */ 985 AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) 986 987 /** 988 * Run the handler functions for each module 989 * @param r The request_rec 990 * @remark non-wildcard handlers should HOOK_MIDDLE, wildcard HOOK_LAST 991 */ 992 AP_DECLARE_HOOK(int,handler,(request_rec *r)) 993 994 /** 995 * Run the quick handler functions for each module. The quick_handler 996 * is run before any other requests hooks are called (location_walk, 997 * directory_walk, access checking, et. al.). This hook was added 998 * to provide a quick way to serve content from a URI keyed cache. 999 * 1000 * @param r The request_rec 1001 * @param lookup_uri Controls whether the caller actually wants content or not. 1002 * lookup is set when the quick_handler is called out of 1003 * ap_sub_req_lookup_uri() 1004 */ 1005 AP_DECLARE_HOOK(int,quick_handler,(request_rec *r, int lookup_uri)) 1006 1007 /** 1008 * Retrieve the optional functions for each module. 1009 * This is run immediately before the server starts. Optional functions should 1010 * be registered during the hook registration phase. 1011 */ 1012 AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) 1013 1014 #ifdef __cplusplus 1015 } 1016 #endif 1017 1018 #endif /* !APACHE_HTTP_CONFIG_H */
https://w.atwiki.jp/wiki8_hime/pages/50.html
環境;FreeBSD6.3 コピペパーツ 時計あわせ ntpdate -s -b 133.100.11.8 カーネルチューニング ===/boot/loader.conf=== echo /boot/loader.conf; echo kern.ipc.nmbclusters=32768 /boot/loader.conf; echo kern.ipc.maxsockets=32768 /boot/loader.conf; echo accf_http_load="YES" /boot/loader.conf; echo beastie_disable="YES" /boot/loader.conf; echo kern.maxssiz="134217728" /boot/loader.conf; echo kern.dfldsiz="1073741824" /boot/loader.conf; echo kern.maxdsiz="1073741824" /boot/loader.conf ===/etc/sysctl.conf=== echo /etc/sysctl.conf echo net.inet.tcp.inflight_enable=1 /etc/sysctl.conf echo kern.maxfiles=16384 /etc/sysctl.conf echo kern.maxfilesperproc=14745 /etc/sysctl.conf echo kern.ipc.somaxconn=4096 /etc/sysctl.conf echo kern.ipc.maxsockbuf=1048576 /etc/sysctl.conf ===前準備 ~ パッケージからインストール -r するとリモートからとってくるよ編~ === pkg_add -r perl pkg_add -r rsync pkg_add -r cvsup-without-gui pkg_add -r zip pkg_add -r unzip pkg_add -r wget pkg_add -r curl pkg_add -r libxml2 pkg_add -r expat2 pkg_add -r cclient pkg_add -r tidy-lib pkg_add -r freebsd-update pkg_add -r jpeg pkg_add -r png pkg_add -r freetype pkg_add -r freetype2 pkg_add -r gd pkg_add -r mhash pkg_add -r bsdsar pkg_add -r openssl ===cvsup=== cvsupは vi /usr/share/examples/cvsup/ports-supfile で host=backup1.atwiki.jp に設定。 rehash でパスを再読み込み ==cvsupでportsを更新== cvsup /usr/share/examples/cvsup/ports-supfile アパッチ fetch ftp //ftp.lab.kdd.co.jp/infosystems/apache/dist/httpd/apache_1.3.41.tar.gz tar zxvf apache_1.3.41.tar.gz cd apache_1.3.41 setenv EXTRA_CFLAGS -DFD_SETSIZE=16384 ./configure --prefix=/usr/local/apache13 --enable-module=most --enable-module=so --enable-shared=max --enable-suexec --suexec-caller=www --suexec-logfile=/usr/local/apache13/logs/suexec_log --suexec-uidmin=10000 --suexec-gidmin=10000 make make install mod_layout改造版をどっかからとってくる。 tar zxvf mod_layout cd mod_layout-3.4 vi Makefile make make install Mysql cd /usr/ports/databases/mysql41-client/ make WITH_CHARSET=sjis WITH_XCHARSET=all make install cd /usr/ports/databases/mysql41-server/ make make install /etc/my.cnf設置→どこかのサーバーからコピー PHP fetch http //jp.php.net/get/php-5.2.8.tar.gz/from/this/mirror mv mirror php-5.2.8.tar.gz tar zxvf php-5.2.8.tar.gz cd php-5.2.8/ ./configure --with-apxs=/usr/local/apache13/bin/apxs --enable-mbstring --with-openssl --with-tidy --with-gd --with-jpeg-dir=/usr/local --with-zlib --enable-mbregex --enable-gd-jis-conv --with-freetype-dir=/usr/local/ --enable-zend-multibyte --enable-mbstring=japanese --enable-ftp --with-png-dir=/usr/local --enable-memory-limit --with-xmlrpc --enable-imap --with-mysql=/usr/local --with-pdo-mysql=/usr/local --enable-iconv --with-gettext --with-curl --with-mh make make install proftpd cd /usr/ports/ftp/proftpd make (defolut + quota + mysql) make install APC ===autoconf/aotoheader=== cd /usr/ports/devel/autoconf213/ make make install ln -s /usr/local/bin/autoconf213 /usr/local/bin/autoconf ln -s /usr/local/bin/autoheader213 /usr/local/bin/autoheader ===APC=== fetch http //pecl.php.net/get/APC-3.0.12p2.tgz tar zxvf APC-3.0.12p2.tgz cd APC-3.0.12p2 phpize ./configure --enable-apc-mmap--with-apxs --with-php-config=/usr/local/bin/php-config make make install mod_bandwidth.c mkdir tmp cd tmp/ fetch ftp //ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c /usr/local/apache13/bin/apxs -c mod_bandwidth.c /usr/local/apache13/bin/apxs -i -a mod_bandwidth.so /usr/local/apache13/bin/apachectl restart httpd.confを設定する前に作業デレクトリを作成。 mkdir /usr/local/apache13/bandwidth mkdir /usr/local/apache13/bandwidth/link mkdir /usr/local/apache13/bandwidth/master chown -R www www /usr/local/apache13/bandwidth mod_limitipconn fetch http //dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz tar zxvf mod_limitipconn-0.04.tar.gz cd mod_limitipconn-0.04 vi Makefile APXS=/usr/local/apache13/bin/apxs ←apxsをフルパスで指定 make make install 権限変更 権限変更750 chmod 750 /root/ chmod 750 /usr/local/apache13/conf/* chmod 750 /usr/local/etc/ chmod 750 /usr/local/etc/proftpd.conf chmod 750 /usr/home/ now ディレクトリ ファイル設置 /usr/local/www/以下 /usr/local/www/htdocs/_/ /root/_atpages/ /usr/local/www/session/ /usr/local/www/skel/ /usr/local/lib/php.ini /etc/my.cnf python インストール cd /usr/ports/lang/python25/ make make install ruby インストール cd /usr/ports/lang/ruby18/ make make install /etc/rc.confに追加 mysql_enable="YES" mysql_dbdir="/usr/local/mysql_data" proftpd_enable="YES" analog cd /usr/ports/www/analog/ make make install vi /usr/local/etc/analog.cfg ↓修正 LOGFORMAT COMMON LOGFILE /usr/local/apache13/logs/access_log OUTFILE /usr/local/www/htdocs/_analog/index.html その他 mysql設定 apache設定 proftpd設定 pf追加 /etc/crontab 編集 /etc/newsyslog.conf 編集 CGI グループ追加 pw groupadd -n pages -g 10000 php,cgiインストーラーのスクリプト設置 scp -rp dir/ ImageMagick cd /usr/ports/graphics/ImageMagick/ make make install perlモジュール cpan Jcode.pm モジュール cpan install Jcode DB_File モジュール cpan install DB_File DBI モジュール cpan install DBI DBD mysql モジュール cpan install DBD mysql ↑失敗したら、下記のURLからダウンロード http //www.cpan.org/modules/by-module/DBD/ tar zxvf DBD-mysql-4.010.tar.gz cd DBD-mysql-4.010 perl Makefile.PL make make install CGI.pm モジュール cpan install CGI image size http //search.cpan.org/~rjray/Image-Size-3.1.1/lib/Image/Size.pm Pythonモジュール ./ez_py.pv mysql /usr/ports/database/py-Mysqldb/ make make install SQLite /usr/local/bin/easy_install SQLObject ipython追加 cd /usr/ports/devel/ipython/ make make install ruby モジュール cd /usr/ports/databases/ruby-mysql/ make make install cd /usr/ports/databases/ruby-sqlite/ make make install
https://w.atwiki.jp/katsuhiro/pages/26.html
HTTPメソッド GET情報取得メソッド POST PUT DELETEリソース削除メソッド HTTPリクエスト ポストデータ HTMLのPOST指定のformから送信されるデータ JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetParameter getParameterValues リクエストボディのセットされて送信される クエリ情報 URLの末尾の"?"以降に「キー=値」のセットで付加される簡易な情報 複数のセットがある場合は" "で連結される URLに直接指定するほか、HTMLのGET指定のformから送信されるデータ formのmethod属性が省略された場合もクエリ情報として送信される JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetParameter クエリ情報に特殊文字が含まれる場合は、あらかじめエンコードしておく必要がある(form経由の場合はエンコード不要) URLに使用可能な文字数を超えて送信できない(2,083文字)FireFoxの場合は制限が無いが、動作が遅くなる場合もあるらしい データがアドレス欄に露出してしまう ヘッダ情報 「名前: 値」形式 種類一般ヘッダ(要求/応答時双方で利用) エンティティヘッダ(コンテンツに関する情報) リクエスト(要求)ヘッダ(クライアントに関する情報) レスポンス(応答)ヘッダ(その他) JSPのrequestオブジェクトから下記のメソッドで情報を取得できるgetHeaderNames ただし、情報取得専用メソッドが存在するヘッダについてはそちらを使う ■ヘッダ例 種類 ヘッダ名 概要 一般 Cache-Control キャッシュルールを規定する Connection プロキシ(中間)サーバで削除すべきHTTPヘッダを指定 Date コンテンツ生成日時 Pragma キャッシングを利用するか(下位互換用のヘッダ) Transfer-Encoding コンテンツの転送エンコーディング方式 リクエスト Accept クライアント対応コンテンツの種類(優先順) Accept-Language クライアント対応言語(優先順) Authorization 認証情報 Cookie クライアントに保存されたクッキーデータを送信 Host 要求先ホスト名 If-Modified-Since 指定日時以降にコンテンツが更新されている場合にのみ、サーバはデータを送信 Proxy-Authorization プロキシサーバ用の認証情報 Range 要求リソース範囲 Referer リンク元URI User-Agent クライアントの種類 レスポンス ETag リソースを一意に特定するためのキー情報(コンテンツが更新されていないかどうかを特定する場合などに使用) Location クライアントに新しいURIに移動するように促す Server サーバの種類 Set-Cookie クライアントにクッキーを送信 WWW-Authenticate クライアントに認証を要求 エンティティ Content-Encoding コンテンツのエンコーディング方式 Content-Length コンテンツサイズ Content-Type コンテンツの種類 Expires コンテンツの有効期限 Last-Modified コンテンツの最終更新年月日 クッキー サーバがクライアントに対して自由に読み書きできるテキスト クッキーの有効期限負数をセットした場合、ブラウザの終了時に削除される 0をセットした場合、その場で削除される 1以上をセットすると、その秒数分保持される クッキーのデメリットクライアント側でクッキーを受け入れないように設定することが可能 クライアント側でクッキーの改竄や削除が可能 実データがネットワーク上を流れてしまう クッキーの制約1つのホスト、ドメイン当たりの最大個数は20個(総数では300個以内) クッキー1つあたりの最大サイズは4096バイト セッション情報 長期間にわたって情報を保持するには不向き ユーザがブラウザを開いている間だけアプリケーション内で情報を受け渡しする場合にはクッキーより手軽でセキュアな仕組み sessionJSPの暗黙オブジェクトの1つ 下記のメソッドを使って読み書きするgetAttribute setAttribute @pageディレクティブのsession属性がfalseの場合は使えない sessionが不要の場合はsession属性をfalseにしておく(サーバリソースの節約) sessionを使うと… クライアントからサーバにリクエスト送信 サーバからのレスポンスにSet-Cookieヘッダの値としてセッションIDが付加される(JSESSIONID) クライアントからサーバに2回目以降のリクエスト送信時、Cookieヘッダの値として、受け取ったJSESSIONIDを付加して送る サーバをそのセッションIDに該当するセッションを使って処理をし、レスポンスを返す セッションの破棄方法明示的な破棄(session.invalidate()) 有効期限を設定する(session.setMaxInactiveInteval()) web.xmlにセッションの有効期限を設定する session-config session-timeout セッションの寿命明示的に破棄されるか有効期限を過ぎない限り、クライアントを閉じてもサーバ上で生き続ける ieHTTPHeaders http //www.blunck.info/iehttpheaders/iehttpheaders.html ⇒IE上でHTTPによる通信内容をトレースするツール
https://w.atwiki.jp/yoshida2/pages/115.html
telnetでブラウズ(HTTP) このページでは、インターネットでホームページなどをブラウジングするときに利用するHTTPプロトコルについて説明しています。 概要 HTTPプロトコルとは、Hypertext Transfer Protocolの略で、インターネットでホームページなどをブラウジングするときに利用しているプロトコルです。 HTTPプロトコルは、TCP/IP上のプロトコルで、通常80番ポートを使ってアクセスします。 詳細な定義は、以下のRFCで定義されています。 RFC-1945 HTTP/1.0 RFC-2068 HTTP/1.1 基本的に、メッセージを要求(リクエスト)し、その応答結果(レスポンス)を表示するだけです。 HTTPのアクセスログ ApacheなどのWebサーバのログを見ると、リクエストとレスポンスが、以下の形式で出力されます。 アクセスログの書式 アクセス元 - - [アクセス時間] メソッド名 URL名 プロトコルバージョン レスポンスコード 例: 10.0.1.20 - - [01/Jul/1999 23 22 46 +0900] GET /usr/joe/index.html HTTP/1.0 200 2060 メソッドの種類には、GETやPOSTなどがあります。 GETメソッドは、HTMLデータや画像データなどを取得する場合に使用します。 GETメソッドで要求すると、ヘッダ情報とHTMLデータが返却されます。 GETメソッドでCGIを呼び出すこともできます。 パラメータを渡す場合は、URLの後に ?name1=データ1 name2=データ2 という形式で指定します。 HEADメソッドは、ファイルサイズや更新日時を調べる場合に利用します。 HEADメソッドを利用すると、ヘッダ情報だけが返却されます。 POSTメソッドは、CGIなどにデータを渡す場合に使用します。 パラメータなどのデータは、環境変数などによって、CGIに渡ります。 以下に、HTTPのバージョンとメソッドの種類を示します。 メソッドの種類 HTTP/1.0 GET, HEAD, PUT, POST, DELETE, LINK, UNLINK HTTP/1.1 OPTIONS, TRACE, PATCH 以下に、レスポンスコードの一覧を示します。 100番台は通信エラー、200番台は正常終了、300番台はリダイレクト、400番台はクライアントエラー、500番台はサーバエラーを表しています。 リダイレクトとは、クライアントの指定したURLに移動した場合などに返却されます。 レスポンスコード コード 内容 コード 内容 100 Continue 101 Switching Protocols 200 OK 201 Created 202 Accepted 203 Non-Authoritative Information 204 No Content 205 Reset Content 206 Partial Content 300 Multiple Choices 301 Moved Permanently 302 Moved Temporarily 303 See Other 304 Not Modified 305 Use Proxy 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 405 Method Not Allowed 406 Not Acceptable 407 Proxy Authentication Required 408 Request Time-out 409 Conflict 410 Gone 411 Length Required 412 Precondition Failed 413 Request Entity Too Large 414 Request-URI Too Large 415 Unsupported Media Type 500 Internal Server Error 501 Not Implemented 502 Bad Gateway 503 Service Unavailable 504 Gateway Time-out 505 HTTP Version not supported レスポンスコードは、ログファイルなどに出力されますので、知っていると役に立つと思います。 telnetでブラウジング では、実際にtelnetでブラウジングしてみましょう。 telnetコマンドで、WWWサーバ名と、80番ポートを指定します。 Linux# telnet ash.jp 80 そこで、環境変数をすべて表示するCGI(env.cgi)を起動してみます。 まず、GETコマンドで、取得したいURLと、HTTPのバージョンを指定します。 GET /~joe/prog/cgi/env01.cgi HTTP/1.0 ここで、リターンのみを入力しても表示されますが、以下のオプションも入力してみます。 指定したオプションは、環境変数としてCGIに渡ります。 User-Agent Telnet [ja] (Linux) Host www.ash.jp リターンのみを入力すると、レスポンスと、HTMLが表示されます。 当然、HTMLのソースが表示されるだけですから、頭の中でHTMLを解析し画面イメージを想像する必要があります。 以下に実行結果を示します。 Linux# telnet ash.jp 80 Trying 210.154.87.18... Connected to ash.jp. Escape character is ^] . GET /~joe/prog/cgi/env01.cgi HTTP/1.0 User-Agent Telnet [ja] (Linux) Host ash.jp HTTP/1.1 200 OK DeleGate-Ver 5.8.8 (delay=7) Date Fri, 02 Jul 1999 09 56 24 GMT Server Apache/1.3.3 (Unix) Content-Type text/html Via 1.0 210.154.87.18 80 (DeleGate/5.8.8) Content-Length 954 html body h1 CGIでの環境変数一覧 /h1 hr h3 環境変数の表示 /h3 DOCUMENT_ROOT = /usr/local/share/apache/htm br GATEWAY_INTERFACE = CGI/1.1 br HTTP_FORWARDED = by http //210.154.87.18 80/ (DeleGate/5.8.8) for sv01.lo.ash.or .jp br HTTP_HOST = ash.jp br HTTP_USER_AGENT = Telnet [ja] (Linux) br HTTP_VIA = 1.0 210.154.87.18 80 (DeleGate/5.8.8) br PATH = /usr/local/sbin /usr/local/bin /sbin /usr/sbin /bin /usr/bin br QUERY_STRING = br REMOTE_ADDR = 10.0.1.254 br REMOTE_PORT = 12621 br REQUEST_METHOD = GET br REQUEST_URI = /~joe/prog/cgi/env01.cgi br SCRIPT_FILENAME = /home/joe/public_html/prog/cgi/env01.cgi br SCRIPT_NAME = /~joe/prog/cgi/env01.cgi br SERVER_ADMIN = info@ash.jp br SERVER_NAME = ash.jp br SERVER_PORT = 80 br SERVER_PROTOCOL = HTTP/1.0 br SERVER_SIGNATURE = ADDRESS Apache/1.3.3 Server at ash.jp Port 80 /ADDRESS br SERVER_SOFTWARE = Apache/1.3.3 (Unix) br hr br このCGIのソース: a href=env01.txt env01.cgi /a br /body /html Connection closed by foreign host. 最初の、HTTP/1.1 200 OKは、HTTPプロトコルで、正常に転送したことを表します。 その後にヘッダ情報が転送され、最後にHTMLのソースが転送されます。 環境変数として、以下の値が追加設定されているのが確認できます。 HTTP_HOST = ash.jp HTTP_USER_AGENT = Telnet [ja] (Linux) このように、HTTPプロトコルは、要求(リクエスト)に対して、応答(レスポンス)が返却されるだけのシンプルなプロトコルです。 余談ですが、HTTPプロトコルという呼び方は、Hyper Text Transfer Protocol プロトコルになって、プロトコルが2重になってしまい、おかしいです。 でも、この方がわかりやすいので、私はよく使います。
https://w.atwiki.jp/wiki8_hime/pages/49.html
環境;FreeBSD6.3 コピペパーツ 時計あわせ ntpdate -s -b 133.100.11.8 カーネルチューニング ===/boot/loader.conf=== echo /boot/loader.conf; echo kern.ipc.nmbclusters=32768 /boot/loader.conf; echo kern.ipc.maxsockets=32768 /boot/loader.conf; echo accf_http_load="YES" /boot/loader.conf; echo beastie_disable="YES" /boot/loader.conf; echo kern.maxssiz="134217728" /boot/loader.conf; echo kern.dfldsiz="1073741824" /boot/loader.conf; echo kern.maxdsiz="1073741824" /boot/loader.conf ===/etc/sysctl.conf=== echo /etc/sysctl.conf echo net.inet.tcp.inflight_enable=1 /etc/sysctl.conf echo kern.maxfiles=16384 /etc/sysctl.conf echo kern.maxfilesperproc=14745 /etc/sysctl.conf echo kern.ipc.somaxconn=4096 /etc/sysctl.conf echo kern.ipc.maxsockbuf=1048576 /etc/sysctl.conf ===前準備 ~ パッケージからインストール -r するとリモートからとってくるよ編~ === pkg_add -r perl pkg_add -r rsync pkg_add -r cvsup-without-gui pkg_add -r zip pkg_add -r unzip pkg_add -r wget pkg_add -r curl pkg_add -r libxml2 pkg_add -r expat2 pkg_add -r cclient pkg_add -r tidy-lib pkg_add -r freebsd-update pkg_add -r jpeg pkg_add -r png pkg_add -r freetype pkg_add -r freetype2 pkg_add -r gd pkg_add -r mhash pkg_add -r bsdsar pkg_add -r openssl ===cvsup=== cvsupは vi /usr/share/examples/cvsup/ports-supfile で host=backup1.atwiki.jp に設定。 rehash でパスを再読み込み ==cvsupでportsを更新== cvsup /usr/share/examples/cvsup/ports-supfile アパッチ fetch ftp //ftp.lab.kdd.co.jp/infosystems/apache/dist/httpd/apache_1.3.41.tar.gz tar zxvf apache_1.3.41.tar.gz cd apache_1.3.41 setenv EXTRA_CFLAGS -DFD_SETSIZE=16384 ./configure --prefix=/usr/local/apache13 --enable-module=most --enable-module=so --enable-shared=max --enable-suexec --suexec-caller=www --suexec-logfile=/usr/local/apache13/logs/suexec_log --suexec-uidmin=10000 --suexec-gidmin=10000 make make install mod_layout改造版をどっかからとってくる。 tar zxvf mod_layout cd mod_layout-3.4 vi Makefile make make install Mysql cd /usr/ports/databases/mysql41-client/ make WITH_CHARSET=sjis WITH_XCHARSET=all make install cd /usr/ports/databases/mysql41-server/ make make install /etc/my.cnf設置→どこかのサーバーからコピー PHP fetch http //jp.php.net/get/php-5.2.8.tar.gz/from/this/mirror mv mirror php-5.2.8.tar.gz tar zxvf php-5.2.8.tar.gz cd php-5.2.8/ ./configure --with-apxs=/usr/local/apache13/bin/apxs --enable-mbstring --with-openssl --with-tidy --with-gd --with-jpeg-dir=/usr/local --with-zlib --enable-mbregex --enable-gd-jis-conv --with-freetype-dir=/usr/local/ --enable-zend-multibyte --enable-mbstring=japanese --enable-ftp --with-png-dir=/usr/local --enable-memory-limit --with-xmlrpc --enable-imap --with-mysql=/usr/local --with-pdo-mysql=/usr/local --enable-iconv --with-gettext --with-curl --with-mh make make install proftpd cd /usr/ports/ftp/proftpd make (defolut + quota + mysql) make install APC ===autoconf/aotoheader=== cd /usr/ports/devel/autoconf213/ make make install ln -s /usr/local/bin/autoconf213 /usr/local/bin/autoconf ln -s /usr/local/bin/autoheader213 /usr/local/bin/autoheader ===APC=== fetch http //pecl.php.net/get/APC-3.0.12p2.tgz tar zxvf APC-3.0.12p2.tgz cd APC-3.0.12p2 phpize ./configure --enable-apc-mmap--with-apxs --with-php-config=/usr/local/bin/php-config make make install mod_bandwidth.c mkdir tmp cd tmp/ fetch ftp //ftp.cohprog.com/pub/apache/module/1.3.0/mod_bandwidth.c /usr/local/apache13/bin/apxs -c mod_bandwidth.c /usr/local/apache13/bin/apxs -i -a mod_bandwidth.so /usr/local/apache13/bin/apachectl restart httpd.confを設定する前に作業デレクトリを作成。 mkdir /usr/local/apache13/bandwidth mkdir /usr/local/apache13/bandwidth/link mkdir /usr/local/apache13/bandwidth/master chown -R www www /usr/local/apache13/bandwidth mod_limitipconn fetch http //dominia.org/djao/limit/mod_limitipconn-0.04.tar.gz tar zxvf mod_limitipconn-0.04.tar.gz cd mod_limitipconn-0.04 vi Makefile APXS=/usr/local/apache13/bin/apxs ←apxsをフルパスで指定 make make install 権限変更 権限変更750 chmod 750 /root/ chmod 750 /usr/local/apache13/conf/* chmod 750 /usr/local/etc/ chmod 750 /usr/local/etc/proftpd.conf chmod 750 /usr/home/ now ディレクトリ ファイル設置 /usr/local/www/以下 /usr/local/www/htdocs/_/ /root/_atpages/ /usr/local/www/session/ /usr/local/www/skel/ /usr/local/lib/php.ini /etc/my.cnf python インストール cd /usr/ports/lang/python25/ make make install ruby インストール cd /usr/ports/lang/ruby18/ make make install /etc/rc.confに追加 mysql_enable="YES" mysql_dbdir="/usr/local/mysql_data" proftpd_enable="YES" analog cd /usr/ports/www/analog/ make make install vi /usr/local/etc/analog.cfg ↓修正 LOGFORMAT COMMON LOGFILE /usr/local/apache13/logs/access_log OUTFILE /usr/local/www/htdocs/_analog/index.html その他 mysql設定 apache設定 proftpd設定 pf追加 /etc/crontab 編集 /etc/newsyslog.conf 編集 CGI グループ追加 pw groupadd -n pages -g 10000 php,cgiインストーラーのスクリプト設置 scp -rp dir/ ImageMagick cd /usr/ports/graphics/ImageMagick/ make make install perlモジュール cpan Jcode.pm モジュール cpan install Jcode DB_File モジュール cpan install DB_File DBI モジュール cpan install DBI DBD mysql モジュール cpan install DBD mysql ↑失敗したら、下記のURLからダウンロード http //www.cpan.org/modules/by-module/DBD/ tar zxvf DBD-mysql-4.010.tar.gz cd DBD-mysql-4.010 perl Makefile.PL make make install CGI.pm モジュール cpan install CGI image size http //search.cpan.org/~rjray/Image-Size-3.1.1/lib/Image/Size.pm Pythonモジュール ./ez_py.pv mysql /usr/ports/database/py-Mysqldb/ make make install SQLite /usr/local/bin/easy_install SQLObject ipython追加 cd /usr/ports/devel/ipython/ make make install ruby モジュール cd /usr/ports/databases/ruby-mysql/ make make install cd /usr/ports/databases/ruby-sqlite/ make make install
https://w.atwiki.jp/memcache/pages/36.html
HTTP Header Proxy ServerWeb Debugging Proxy LINK SSL Pass-Thu HTTP Header http //www.tohoho-web.com/ex/http.htm http //web-tan.forum.impressrd.jp/e/2010/01/12/7156 Proxy Server http //howto.ysn-jp.com/tor/tor_what.php http //www.atmarkit.co.jp/fwin2k/win2ktips/031autoproxy/autoproxy.html Web Debugging Proxy Fiddler http //www.fiddler2.com/fiddler2/ LINK Studying HTTP http //www.studyinghttp.net/ Smart http //www.rfs.jp/sb/perl/03/03.html HTTPプロトコルとサーバへのリクエスト(FUJITSU) http //jp.fujitsu.com/solutions/sdas/technology/web-apl/01-http-protocol.html
https://w.atwiki.jp/v-lyrics/pages/99.html
Dear Translators / 翻訳をしていただける方へ If there s any request you happen to be interested in, please do take that request. It ll be a great help. To take the request, please copy the request and paste it on the text box under [ Title Under Work ]. And when you are done, please erase it and then add - Finished - to the request by [ Mark Finish]. TIA. もしリクエストされた曲タイトルの中でもし興味のあるものがあれば、ぜひ翻訳してください。リクエストを受けるには、[ 翻訳中のタイトル ]下のメモ欄にリクエスト内容をコピーして貼り付けます。もし投稿を終えたら、メモ欄に貼り付けた内容を消し、 [ Finishマークを付ける]で該当リクエストに- Finished -マークをつけてください。宜しく御願いいたします。 Dear Requestors / リクエストしていただける方へ Before you post your request, please check memo below [ Title Under Work ] to make sure theres no one working on the trasnlation you want to request. Also please understand that request is just a way of showing the need and whether your request be taken or not all depends on translators who visit here. So if you have "due date" for your request it might not be good choice to request here. リクエストする前に、必ず下の[ 翻訳中のタイトル ]を確認して、リクエストしたいタイトルがないことを確認してください。後、リクエストすれば必ず翻訳が得られるわけではないことをご了承下さい。リクエストが通るかどうかはここを訪れてくれる翻訳者のみなさん次第です。なので、二三日中にはほしい!というようなリクエストはこちらでリクエストするのは得策ではありません。 [ Title Under Work / 翻訳中タイトル ] If you have any translation under work that you re planning upload, please write out the title so people can find out whats under work. 投稿予定の翻訳中タイトルがあれば、それがわかるようにここに書き出すよう宜しくお願いします(特に新規追加の曲タイトル)。 Request 番人の鎌 I promised to do by end of May but I found a translation sub done on it so I just added the link. It s done by good translator so I hope it was alright.-soundares # http //www.nicovideo.jp/watch/sm2679202 http //www.youtube.com/watch?v=uAiID21E8To http //www.youtube.com/watch?v=Hqc9xaiL32c _ [ Request / リクエスト ] Please write Line 1 行目 title and what translation you d like. / タイトル、ほしい翻訳 Line 2 行目 URL of the video / 動画アドレス を書いて下さい。 【PV風】それが僕らのJustice!(CubaseRemix)【H264】english and Romaji translation http //www.youtube.com/watch?v=UiyZz_wbal8 Japaneese lyrics 歌詞 それが僕らの・・・ 冷たい檻に閉ざされているような 深い闇を抜け出して 僕らは今でも答えを探して あてどもなく泳いでる 子供の頃にあこがれた未来は幻だけど・・・ いつかは来ると信じて待ち続けていた 砂浜に書いた誓いは銀の波にさらわれ 無情の海にへと溶けてしまう 青空に映す心は黒い雲にとらわれ 冷たく降り注ぐ雨に濡れてるよ 力なき正義は 確かに無力だけれど 誇りなき力に 意味はあるのだろうか? たとえこの世界のすべてが敵だとしても ひるまず挑み続ける それが僕らの・・・正義さ 悲しみさえも分からなくなるような 甘い罠に囚われて 僕らはいつまで奇跡を信じて 虚ろにただ祈るのか? 流した涙の数だけ強くはなれないけれど・・・ 誰かのために優しくなろうとしていた 岩肌に咲いた希望は銀の風に飛ばされ 夢幻の谷間へと消えてしまう 雪原に残す轍(わだち)は蒼い月に照らされ 静かに舞い降りる雪が微笑むよ かなわなき理想は 確かに無意味だけれど 目指すものなくして何が叶うのだろう? たとえこの旅路が茨(いばら)で埋もれていても 迷わず進み続ける それが僕らの・・・生き様 力なき正義は 確かに無力だけれど 誇りなき力に 意味はあるのだろうか? たとえこの世界のすべてに裏切られても 理想を目指し続ける それが僕らの・・・ジャスティス -- (Videoman) Hello! befdbfe interesting befdbfe site! -- (Pharmd489) Very nice site! -- (Pharmg51) Yudieはいスカーフがさらにトラブルをれるまでのをにしたくない Louis Vuitton バッグ ネバーフ 店舗 http //gemlifts.com/images/louisvuitton-578ce4343.html -- (Louis Vuitton バッグ ネバーフ 店舗) それはいなくです! ルイヴィトン 財布 店舗 http //almadacarrental.com/images/louisvuitton-974gv0166.html -- (ルイヴィトン 財布 店舗) イェリージェンは、トーンをするためにってしい、々はにのトラブルをしていない、のカップルをてみたい Louis Vuitton 財布 新作 2013 メンズ タイガ 人気 http //dolomitesprint.com/images/louisvuitton-3fa974177.html -- (Louis Vuitton 財布 新作 2013 メンズ タイガ 人気) うことです,もすためにれることができるXingyuとMobaiをすることはできません、ケースはがのが、メキシコののとにづいて、いすることはしいことではありませんよろしければXingyuい、インク、と、それはに、でのを、ダブルホワイトインクともらをけた カナダグース ジャスパー 取扱店 http //cirrushardware.co.uk/images/Rings/canadagoose-152yq609818.html -- (カナダグース ジャスパー 取扱店) のビングはチャタリングし、 それでとしたグラはにをやすことはコントロールよりもさいことにより、に、である、それはのなものである プラダ バッグ アウトレット 店舗 http //dinosaural.com/images/prada-51fh3236.html -- (プラダ バッグ アウトレット 店舗) らかに、でもは、きな10のにすることができ、にである、たちはこのをよくっている、あなたは、 はにれてスニークアレイにくはにれてどうやらなかったことができからけすためにとてもではなく、あまり シャネル iphone5ケース コピー 通販 http //asdengineering.co.uk/images/chanel-28332ys6515.html -- (シャネル iphone5ケース コピー 通販) http //www.bag1691.net/?html-p16172.html スーパーコピー http //www.springcanvas.com/ -- (スーパーコピー) Name Request すべてのコメントを見る [ Mark Finish/マーク付加] _